$imdi elimde ARR[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9} $eklinde tanimlanmi$ bir dizi var. bunu INTEGER = 123456789 $eklinde bir degere atamak istiyorum. SAYI = 0;for (x = 9; x >= 0; x--) { SAYI = SAYI + ARR[x] * pow(10, 9 - x); } printf("%d", SAYI);yapinca negatif bir sayi gosteriyor. sanirim 10^0'i 1
$imdi elimde ARR[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9} $eklinde tanimlanmi$ bir dizi var. bunu INTEGER = 123456789 $eklinde bir degere atamak istiyorum.
SAYI = 0;
for (x = 9; x >= 0; x--) {
SAYI = SAYI + ARR[x] * pow(10, 9 - x);
}
printf("%d", SAYI);
yapinca negatif bir sayi gosteriyor. sanirim 10^0'i 1 olarak kabul etmiyor. C'den anlayan bunyelere selam olsun.
0
SAYI = 0;
for (x = 9; x >= 0; x--) {
if(x==9){
SAYI = SAYI + ARR[x];
}
else{
SAYI = SAYI + ARR[x] * pow(10, 9 - x);
}
}
veya
SAYI = ARR[9];
for (x = 8; x >= 0; x--) {
SAYI = SAYI + ARR[x] * pow(10, 9 - x);
}
ile çözebilirsin de sorunun ilk cümlesini anlamadım. zaten sorunu bulmuşsun?
printf("%d", SAYI);
0
abi biraz bakmaya calistim ama hemen cozemedim olayi, ama tahminim double'in 123456789'u saklamak icin kucuk kaldigi olabilir. belki unsigned olsa sorun cozulur. unsigned double diye bir sey oluyor mu bir dene istersen.
0
SAYI'yı double olarak tanımlayınca sorun çözüldü.
0